package com.system.common.util;

import cn.hutool.core.util.StrUtil;
import cn.hutool.jwt.JWTUtil;

import java.util.Map;

public class TokenUtil {

    private static final String TOKEN_KEY = "token";

    public static String getToken(Integer id, String role) {
        Map<String, Object> map = Map.of(
                SYS.TOKEN_KEY_ID, id,
                SYS.TOKEN_KEY_ROLE, role
        );
        return JWTUtil.createToken(map, TOKEN_KEY.getBytes());
    }

    // 改进verify方法，增加非空判断
    public static boolean verify(String token) {
        // 先判断token是否为空
        if (StrUtil.isBlank(token)) {
            return false;
        }
        try {
            return JWTUtil.verify(token, TOKEN_KEY.getBytes());
        } catch (Exception e) {
            // 处理其他可能的异常，如token格式错误、过期等
            return false;
        }
    }

    public static Object getOption(String token, String key) {
        // 同样增加非空判断
        if (StrUtil.isBlank(token)) {
            return null;
        }
        return JWTUtil.parseToken(token).getPayload(key);
    }

}